package com.design.BuilderMode.demo;

/**
 * 创建对象的方法有很多，new是我们最常见也是最熟悉的一种
 *
 * 我们现在定义一个对象：
 * ThreadConfig，ThreadConfig有5个属性：
 *      核心线程数（corePoolSize）非必填、
 *      最大线程数（maxPoolSize）必填、
 *      队列数（queueCapacity）必填、
 *      空闲时间退出（keepAliveTime）必填、
 *      是否允许线程退出（allowCoreThreadTimeout）必填。
 * 属性有必填、有选填。
 *
 * 创建对象的时候要满足以下要求：
 * 1.最大线程数不传，默认为核心线程数的大小。
 * 2.最大线程数不能小于核心线程数。
 * 3.如果填写队列数，队列书不能小于等于0。
 * 4.如果填写keepAliveTime，不能小于等于0。
 *
 * 常规用法-->构造函数/set赋值判断，参数太多容易混淆
 */
public class main {

    public static void main(String[] args) throws IllegalAccessException {
        ThreadConfig config = new ThreadConfig("thread-1",5,2,5,10);
        System.out.println(config);
    }

}
